package org.nuonuo.sdk.model.callback.content;

import javax.validation.constraints.NotNull;

/**
 * @Version 1.0
 * @Author az
 * @Date 2024-04-18 17:40:53
 * @ClassName InvoiceRedItem
 * @Description 红字信息明细
 */
public class InvoiceRedItem {

    /**
     * 对应蓝票明细行序号，蓝票明细是折扣行时只需传被折扣行的明细序号，折扣行的序号不传（跳过）
     */
    @NotNull(message = "对应蓝票明细行序号，蓝票明细是折扣行时只需传被折扣行的明细序号，折扣行的序号不传（跳过）必填")
    private String blueDetailIndex;
    /**
     * 商品名称
     */
    @NotNull(message = "商品名称必填")
    private String goodsName;
    /**
     * 单位
     */
    private String unit;
    /**
     * 规格型号
     */
    private String specType;
    /**
     * 数量
     */
    private String num;
    /**
     * 单价(不含税)为正数
     */
    private String taxExcludedPrice;
    /**
     * 商品金额(不含税)；带负号，精确到小数点后面两位
     */
    private String taxExcludedAmount;

    /**
     * 商品税额，带负号，精确到小数点后面两位
     */
    private String taxAmount;
    /**
     * 税率，注：蓝票发票为清单红票时值有可能会为null。
     */
    @NotNull(message = "税率必填")
    private String taxRate;
    /**
     * 商品编码
     */
    @NotNull(message = "商品编码必填")
    private String goodsCode;
    /**
     * <pre>
     * 优惠政策标识 (0:不使用 1:使用)
     * 优惠政策标识：
     *  01：简易征收
     *  02：稀土产品
     *  03：免税
     *  04：不征税
     *  05：先征后退
     *  06：100%先征后退
     *  07：50%先征后退
     *  08：按3%简易征收
     *  09：按5%简易征收
     *  10：按5%简易征收减按1.5%计征
     *  11：即征即退30%
     *  12：即征即退50%
     *  13：即征即退70%
     *  14：即征即退100%
     *  15：超税负3%即征即退
     *  16：超税负8%即征即退
     *  17：超税负12%即征即退
     *  18：超税负6%即征即退
     * </pre>
     */
    private String favouredPolicyFlag;
    /**
     * 企业自编码
     */
    private String selfCode;
    /**
     * 优惠政策内容:即征即退、免税、简易征收等
     */
    private String favouredPolicyName;
    /**
     * 零税率标识(空:非零税率 1:免税 2:不征税 3:普通零税率)
     */
    private String zeroRateFlag;
    /**
     * 商品编码简称
     */
    private String goodsCodeAbb;

    /**
     * 单价
     */
    private String price;

    public String getBlueDetailIndex() {
        return blueDetailIndex;
    }

    public void setBlueDetailIndex(String blueDetailIndex) {
        this.blueDetailIndex = blueDetailIndex;
    }

    public String getGoodsName() {
        return goodsName;
    }

    public void setGoodsName(String goodsName) {
        this.goodsName = goodsName;
    }

    public String getUnit() {
        return unit;
    }

    public void setUnit(String unit) {
        this.unit = unit;
    }

    public String getSpecType() {
        return specType;
    }

    public void setSpecType(String specType) {
        this.specType = specType;
    }

    public String getNum() {
        return num;
    }

    public void setNum(String num) {
        this.num = num;
    }

    public String getTaxExcludedPrice() {
        return taxExcludedPrice;
    }

    public void setTaxExcludedPrice(String taxExcludedPrice) {
        this.taxExcludedPrice = taxExcludedPrice;
    }

    public String getTaxExcludedAmount() {
        return taxExcludedAmount;
    }

    public void setTaxExcludedAmount(String taxExcludedAmount) {
        this.taxExcludedAmount = taxExcludedAmount;
    }

    public String getTaxAmount() {
        return taxAmount;
    }

    public void setTaxAmount(String taxAmount) {
        this.taxAmount = taxAmount;
    }

    public String getTaxRate() {
        return taxRate;
    }

    public void setTaxRate(String taxRate) {
        this.taxRate = taxRate;
    }

    public String getGoodsCode() {
        return goodsCode;
    }

    public void setGoodsCode(String goodsCode) {
        this.goodsCode = goodsCode;
    }

    public String getFavouredPolicyFlag() {
        return favouredPolicyFlag;
    }

    public void setFavouredPolicyFlag(String favouredPolicyFlag) {
        this.favouredPolicyFlag = favouredPolicyFlag;
    }

    public String getSelfCode() {
        return selfCode;
    }

    public void setSelfCode(String selfCode) {
        this.selfCode = selfCode;
    }

    public String getFavouredPolicyName() {
        return favouredPolicyName;
    }

    public void setFavouredPolicyName(String favouredPolicyName) {
        this.favouredPolicyName = favouredPolicyName;
    }

    public String getZeroRateFlag() {
        return zeroRateFlag;
    }

    public void setZeroRateFlag(String zeroRateFlag) {
        this.zeroRateFlag = zeroRateFlag;
    }

    public String getGoodsCodeAbb() {
        return goodsCodeAbb;
    }

    public void setGoodsCodeAbb(String goodsCodeAbb) {
        this.goodsCodeAbb = goodsCodeAbb;
    }

    public String getPrice() {
        return price;
    }

    public void setPrice(String price) {
        this.price = price;
    }
}
